package com.xuhao.examai.scoring.domain.repositories;

import com.xuhao.examai.scoring.domain.models.AnswerRecord;
import java.util.List;
import java.util.Optional;

/**
 * 答案记录仓储接口
 */
public interface AnswerRecordRepository {
    
    /**
     * 保存答案记录
     */
    AnswerRecord save(AnswerRecord answerRecord);
    
    /**
     * 根据ID查找答案记录
     */
    Optional<AnswerRecord> findById(Long id);
    
    /**
     * 根据考试记录ID查找答案记录列表
     */
    List<AnswerRecord> findByExamRecordId(Long examRecordId);
    
    /**
     * 根据考试记录ID和题目ID查找答案记录
     */
    Optional<AnswerRecord> findByExamRecordIdAndQuestionId(Long examRecordId, Long questionId);
    
    /**
     * 根据题目ID查找答案记录列表
     */
    List<AnswerRecord> findByQuestionId(Long questionId);
    
    /**
     * 批量保存答案记录
     */
    List<AnswerRecord> saveAll(List<AnswerRecord> answerRecords);
    
    /**
     * 删除答案记录
     */
    void deleteById(Long id);
    
    /**
     * 根据考试记录ID删除所有答案记录
     */
    void deleteByExamRecordId(Long examRecordId);
    
    /**
     * 检查答案记录是否存在
     */
    boolean existsById(Long id);
} 